#!/bin/bash

# Nginx日志生成器测试脚本
# 测试日志轮转功能

echo "=== Nginx日志生成器测试脚本 ==="
echo

# 检查是否已编译
if [ ! -f "target/nginx-log-generator-1.0.0.jar" ]; then
    echo "正在编译项目..."
    mvn clean package
    if [ $? -ne 0 ]; then
        echo "编译失败！"
        exit 1
    fi
fi

# 创建测试目录
echo "创建测试目录..."
mkdir -p test_logs
cd test_logs

# 复制配置文件
cp ../config.properties .

# 修改测试配置
echo "修改测试配置..."
cat > config.properties << EOF
# Nginx日志生成器测试配置

# 输出日志文件路径
output.file=test-access.log

# 每秒生成日志条数
logs.per.second=100

# 日志轮转配置
# 是否启用日志轮转
log.rotation.enabled=true

# 按大小轮转：单个日志文件最大大小（字节），这里设置为1MB用于测试
log.rotation.max.size=1048576

# 按时间轮转：轮转间隔（HOUR, DAY, WEEK），NONE表示不按时间轮转
log.rotation.time.interval=HOUR

# 保留的日志文件数量，超过此数量的旧文件将被删除
log.rotation.max.files=5

# 日志文件命名模式（用于时间轮转）
log.rotation.file.pattern=yyyy-MM-dd-HH-mm

# 日志目录（用于存储轮转后的日志文件）
log.rotation.directory=rotated_logs
EOF

# 创建轮转日志目录
mkdir -p rotated_logs

echo "=== 配置信息 ==="
echo "输出文件: test-access.log"
echo "生成速率: 100条/秒"
echo "文件大小限制: 1MB"
echo "时间轮转: 每小时"
echo "最大保留文件: 5个"
echo "轮转目录: rotated_logs"
echo

echo "启动日志生成器（测试30秒）..."
timeout 30s java -jar ../target/nginx-log-generator-1.0.0.jar -c config.properties

echo
echo "=== 测试结果 ==="
echo "生成的日志文件:"
ls -lh test-access.log 2>/dev/null || echo "当前日志文件不存在"
echo
echo "轮转的日志文件:"
ls -lh rotated_logs/ 2>/dev/null || echo "轮转目录为空"
echo
echo "轮转目录中的文件数量:"
ls rotated_logs/ 2>/dev/null | wc -l

echo
echo "测试完成！"
echo "请检查 rotated_logs 目录中的轮转日志文件"